using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using UniversalAdmin.Application.Dto;
using UniversalAdmin.Application.Commands;

namespace UniversalAdmin.Application.Services
{
    public interface IAppPermissionService
    {
        Task<ApiResult<PagedResult<PermissionDto>>> GetPagedAsync(PagedQuery query);
        Task<ApiResult<IEnumerable<PermissionDto>>> GetAllAsync(string? search = null);
        Task<ApiResult<PermissionDto>> GetByIdAsync(Guid id);
        Task<ApiResult<PermissionDto>> CreateAsync(CreatePermissionDto dto);
        Task<ApiResult<PermissionDto>> UpdateAsync(Guid id, UpdatePermissionDto dto);
        Task<ApiResult> DeleteAsync(Guid id);
        Task<ApiResult> EnableAsync(Guid id);
        Task<ApiResult> DisableAsync(Guid id);
    }
} 